package com.wgy.day16.Static;

/**
 * Created by pc on 2020/11/11 22:14
 * Description: LearningJava
 */
public class Demo02StaticMethod {
    public static void main(String[] args) {
      /*  无论是成员变量还是成员方法.如果有了static 都推荐使用类名称进行调用
          静态变量:类名称.静态变量
          静态方法:类名称.静态方法()

          注意事项:
                1. 静态不能直接访问非静态. 因为内存当中是 先 有静态内容, 后 有非静态内容,"先人不知后人,但后人知道先人"
                2. 静态方法当中不能用this  因为this是代表当前的对象,但是静态方法的调用时通过类名称的 和对象没有什么关系的

*/
        MyClass obj = new MyClass();//首先创建对象
        //对于没有static的成员方法必须要创建对象才能调用
        obj.mathod();

        //静态方法的调用 不需要创建对象就可以直接调用  方式是 类名称.静态方法名  也可以是 对象.静态方法名
        obj.mathodStatic(); //正确的  但是不推荐  这种写法编译后javac也会翻译成"类名称.静态方法名"
        MyClass.mathodStatic();// 强烈推荐写法  通过类名称来调用

        myMethod(); //属于本类自己的方法可以直接调用 不需要写上本类的名称  但是本类以外的调用  就要写上类名称.方法名()

        Demo02StaticMethod.myMethod();//和上面的调用时完全等效的
    }

    public static void myMethod() {
        System.out.println("自己的方法");
    }
}
